package modelo.dao;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

import modelo.Impuesto;
import modelo.Status;

/*
 * Maneja entidades:
 *   - IVA
 */

public class DAOImpuestos {
	protected HashMap<Integer, Impuesto> impuestos = new HashMap<Integer, Impuesto>();
	
	public void cargarImpuestos() {
		ResultSet rs = Servidor.consultar(
			"SELECT *\n" +
			"FROM impuesto\n"
			);
		
		try {
			while (rs.next()) {
				Impuesto e = new Impuesto(rs.getInt("cod_impuesto"), rs.getString("descripcion"), rs.getDouble("valor"), Status.valueOf(rs.getInt("status")));
				impuestos.put(e.clave(), e);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	
	public ArrayList<Impuesto> consultarImpuestos() {
		ResultSet rs = Servidor.consultar(
			"SELECT cod_impuesto\n" +
			"FROM impuesto\n"
			);
		
		return adjuntarImpuesto(rs);
	}
	
	private ArrayList<Impuesto> adjuntarImpuesto(ResultSet rs) {
		ArrayList<Impuesto> lst = new ArrayList<Impuesto>();
		
		try {
			while (rs.next())
				lst.add(impuestos.get(rs.getInt("cod_impuesto")));
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		return lst;
	}

	public Impuesto consultarImpuestoPorCodigo(int codigo) {
		return impuestos.get(codigo);
	}
	
}
